home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / kiss-0.11 / kiss-0 / kiss / src / getprompt.c < prev    next >
C/C++ Source or Header  |  1995-03-23  |  777b  |  55 lines

  1. #include "kiss.h"
  2.  
  3. char *getprompt ()
  4. {
  5.     register char
  6.     *prompt,
  7.     *cwd;
  8.     static char
  9.     buf [LINELEN];
  10.     char
  11.     twobuf [2] = { 0, 0 };
  12.  
  13.     cwd = getcwd (NULL, 0);
  14.     if (! flags.noenviron)
  15.     addtoenv ("PWD", cwd);
  16.  
  17.     if (! (prompt = getenv ("PROMPT")) )
  18.     prompt = "[%u] %p > ";
  19.  
  20.     buf [0] = '\0';
  21.  
  22.     while (*prompt)
  23.     {
  24.     if (*prompt == '%' && *(prompt + 1))
  25.     {
  26.         prompt++;
  27.         switch (*prompt)
  28.         {
  29.         case 'n':
  30.             strcat (buf, "\n");
  31.             break;
  32.         case 'u':
  33.             strcat (buf, username);
  34.             break;
  35.         case 'p':
  36.             strcat (buf, cwd);
  37.             break;
  38.         default:
  39.             twobuf [0] = *prompt;
  40.             strcat (buf, twobuf);
  41.         }
  42.     }
  43.     else
  44.     {
  45.         twobuf [0] = *prompt;
  46.         strcat (buf, twobuf);
  47.     }
  48.     prompt++;
  49.     }
  50.     
  51.     free (cwd);
  52.  
  53.     return (buf);
  54. }
  55.